export const leftJson = {
  'name': 'Ubuntu',
  'version': '16',
  'type': 'cheatsheet',
  'category': 'system',
  'tag': 'other',
  'desc': [{
      'key': 'ubuntu16PasswordPolicyCheck',
      'name': 'ubuntu 16 密码策略检查',
      'sub': [{
          'key': 'passMaxDaysSetup',
          'name': '强制密码失效时间',
          'desc': '确保密码失效时间不超过90天',
          'method': '使用 cat /etc/login.defs 查看 PASS_MAX_DAYS  的值，大于90则不通过',
          'repairing': '在 /etc/login.defs 中将 PASS_MAX_DAYS参数设置为90',
          'score': '1.0'
        },

        {
          'key': 'passMinDaysSetup',
          'name': '设置密码修改最小间隔时间',
          'desc': '设置密码修改最小间隔时间',
          'method': '使用 cat /etc/login.defs 查看 PASS_MIN_DAYS  的值，小于7则不通过',
          'repairing': '在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7',
          'score': '1.0'
        },
        {
          'key': 'passWarnAgeSetup',
          'name': '确保密码到期警告天数为7或更多',
          'desc': '确保密码到期警告天数为7或更多',
          'method': '使用 cat /etc/login.defs 查看 PASS_WARN_AGE   的值，小于7则不通过',
          'repairing': '在 /etc/login.defs 中将 PASS_WARN_AGE 参数设置为7-14之间，建议为7',
          'score': '1.0'
        },
        {
          'key': 'passMinlenSet',
          'name': '设置密码的最小长度',
          'desc': '设置密码的最小长度为8',
          'method': '使用 cat /etc/login.defs 查看  PASS_MIN_LEN   的值，小于8则不通过',
          'repairing': '在 /etc/login.defs 中将 PASS_MIN_LEN 参数设置为12,建议色号为12',
          'score': '1.0'
        }
      ]
    },

    {
      'key': 'ubuntu16SshConfigCheck',
      'name': 'ubuntu 16 ssh策略配置检查',
      'sub': [{
          'key': 'sshMaxAuthTriesSetup',
          'name': '确保SSH MaxAuthTries设置为3到6之间',
          'desc': '设置SSH MaxAuthTries设置为3到6之间，放在未授权用户通过暴力破解获取SSH密码',
          'method': '在/etc/ssh/sshd_config中，查看MaxAuthTries 是否有设置，如没有，则不通过',
          'repairing': '编辑/etc/ssh/sshd_config文件将MaxAuthTries设置为3，并重启SSH服务： MaxAuthTries 3',
          'score': '1.0'
        },

        {
          'key': 'sshdDisableEmptyPasswd',
          'name': '禁止SSH空密码用户登录',
          'desc': '禁止SSH空密码用户登录',
          'method': '在/etc/ssh/sshd_config中，查看是否存在PermitEmptyPasswords No,如没有，则不通过',
          'repairing': '编辑文件/etc/ssh/sshd_config，将PermitEmptyPasswords配置为no:PermitEmptyPasswords NO',
          'score': '1.0'
        },
        {
          'key': 'sshdClinetAliveIntervalSetup',
          'name': '设置SSH空闲超时退出时间',
          'desc': '设置SSH空闲超时退出时间,可降低未授权用户访问其他用户ssh会话的风险',
          'method': '在/etc/ssh/sshd_config中，查看是否ClientAliveInterval，如没有，则不通过',
          'repairing': '编辑/etc/ssh/sshd_config，将ClientAliveInterval 设置为60到300，即1-5分钟，将ClientAliveCountMax设置为0-3',
          'score': '1.0'
        },
        {
          'key': 'sshdDisableRootLogin',
          'name': '确保SSH的root登录被禁用',
          'desc': '禁止使用root登陆ssh需要系统管理员使用自己的个人帐户进行身份验证，然后通过sudo或su切换到root。这反过来限制了不可抵赖的机会，并在发生安全事件时提供了清晰的审计跟踪',
          'method': '在/etc/ssh/sshd_config中，查看是否存在PermitRootLogin No，如没有，则不通过',
          'repairing': '编辑/etc/ssh/sshd_config文件将PermitRootLogin设置为no，并重启SSH服务： PermitRootLogin NO',
          'score': '1.0'
        },
        {
          'key': 'sshEnableLogLevel',
          'name': '确保SSH LogLevel设置为INFO',
          'desc': '确保SSH LogLevel设置为INFO,记录登录和注销活动',
          'method': '在/etc/ssh/sshd_config中，查看是否存在LogLevel INFO，如没有，则不通过',
          'repairing': '编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释):LogLevel INFO',
          'score': '1.0'
        },
        {
          'key': 'sshdDisableX_eleven',
          'name': '确保 SSH X11 被禁用',
          'desc': '禁用x11转发，除非有直接使用x11应用程序的操作要求。通过ssh以x11转发登录的用户的远程x11服务器可能会受到x11服务器上其他用户的危害，存在这样的小风险',
          'method': '在/etc/ssh/sshd_config中，查看是否存在X11Forwarding NO，如没有，则不通过',
          'repairing': '编辑/etc/ssh/sshd_config文件将 X11Forwarding 设置为no，X11Forwarding NO并重启SSH服务：systemctl restart sshd',
          'score': '1.0'
        },
        {
          'key': 'sshSetGraceTime',
          'name': '确保SSH LoginGraceTime设置为小于60秒',
          'desc': '将logingracetime参数设置为较低的数字将最大限度地降低对ssh服务器的暴力攻击成功的风险。它还将限制并发未经身份验证的连接数，一般建议设置为60秒',
          'method': '在/etc/ssh/sshd_config中，查看LoginGraceTime是否设置，如没有，则不通过',
          'repairing': '编辑/etc/ssh/sshd_config文件中将LoginGraceTime设置为小于等于60，LoginGraceTime 60并重启SSH服务：systemctl restart sshd',
          'score': '1.0'
        },
        {
          'key': 'sshdDisableHostbasedAuthentication',
          'name': '确保SSH的HostbasedAuthentication被禁用',
          'desc': 'hostbasedauthentication参数指定是否允许通过.rhosts或/etc/hosts.equiv用户的受信任主机进行身份验证，以及成功的公钥客户端主机身份验证。此选项仅适用于ssh协议版本2',
          'method': '在/etc/ssh/sshd_config中，查看是否存在HostbasedAuthentication NO，如没有，则不通过',
          'repairing': '编辑/etc/ssh/sshd_config文件将HostbasedAuthentication设置为：NO 并重启SSH服务',
          'score': '1.0'
        },
        {
          'key': 'sshdEnableProtocol_two',
          'name': 'SSHD强制使用V2安全协议',
          'desc': 'SSHD强制使用V2安全协议',
          'method': '在/etc/ssh/sshd_config中，查看是否存在Protocol 2，如没有，则不通过',
          'repairing': ' 编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数： Protocol 2',
          'score': '1.0'
        },
        {
          'key': 'sshdEnableIgnoreRhosts',
          'name': '确保SSH的IgnoreRhosts已启用',
          'desc': 'IgnoreRhosts参数指定.rhosts和.shosts文件不会在RhostsRSAAuthentication或HostbasedAuthentication中使用。设置此参数将强制用户在使用ssh进行身份验证时输入密码',
          'method': '在/etc/ssh/sshd_config中，查看是否存在IgnoreRhosts YES，如没有，则不通过',
          'repairing': '编辑 /etc/ssh/sshd_config文件将IgnoreRhosts设置为：YES 并重启SSH服务',
          'score': '1.0'
        },
        {
          'key': 'sshdDisablePermitUserEnvironment',
          'name': '确保SSH的PermitUserEnvironment被禁用',
          'desc': '允许用户通过ssh守护进程设置环境变量的能力可能会允许用户绕过安全控制（例如，设置具有ssh执行特洛伊木马程序的执行路径）',
          'method': '在/etc/ssh/sshd_config中，查看是否存在PermitUserEnvironment NO，如没有，则不通过',
          'repairing': '编辑/etc/ssh/sshd_config文件将PermitUserEnvironment设置为no:PermitUserEnvironment NO，并重启SSH服务',
          'score': '1.0'
        }
      ]
    },
    {
      'key': 'ubuntu16UserConfigCheck',
      'name': 'ubuntu 16 用户和组设置检查',
      'sub': [{
          'key': 'uid_zero_OnlyRoot',
          'name': '确保root是唯一的UID为0的帐户',
          'desc': '除root以外其他UID为0的用户都应该删除，或者为其分配新的UID',
          'method': "查看命令cat /etc/passwd | awk -F: '($3 == 0) { print $1 }'|grep -v '^root$'  ,存在其他用户的话，则不通过",
          'repairing': "除root以外其他UID为0的用户(查看命令cat /etc/passwd | awk -F: '($3 == 0) { print $1 }'|grep -v '^root$')都应该删除，或者为其分配新的UID",
          'score': '1.0'
        },
        {
          'key': 'systemAccountNologinSetup',
          'name': '确保系统帐户为non-login',
          'desc': 'Linux系统自身有许多用于管理应用程序的帐户，并不打算提供交互式shell。确保不会被常规用户使用的帐户被用来提供 交互式shell',
          'method': '在/etc/passwd 查看系统用户是否为 /sbin/nologin ，如不是,则不通过',
          'repairing': '将审计脚本返回的任何帐户的shell设置为/sbin/nologin： usermod -s /sbin/nologin <user>',
          'score': '1.0'
        },
        {
          'key': 'selfHomeExist',
          'name': '确保用户拥有自己的home目录',
          'desc': '用户主目录是为特定用户定义的空间，用于设置本地环境变量和存储个人文件。由于用户对存储在用户主目录中的文件负责，因此用户必须是目录的所有者',
          'method': '除系统用户外查看其他用户是否都有/home/目录，如果有个人用户没有/home/目录，则不通过',
          'repairing': '改变任何不被定义的用户拥有的home目录的所有权到正确的用户',
          'score': '1.0'
        },
        {
          'key': 'homePermissionRestricValue',
          'name': '确保用户home目录权限设置为750或者更严格',
          'desc': '组或全局可写用户主目录可能允许恶意用户窃取或修改其他用户的数据，或获取其他用户的系统权限',
          'method': '除系统用户外查看其他用户的home目录权限设置，如果权限高于750则不通过',
          'repairing': '在不通知用户情况下对用户主目录进行全局修改可能会导致意外停机和用户不满意。因此，建议建立监控策略来报告用户文件权限，并根据站点策略确定要采取的操作',
          'score': '1.0'
        },
        {
          'key': 'rhostsExistValue',
          'name': '确保没有用户有.rhosts文件',
          'desc': '虽然默认情况下不会发送.rhosts文件，但用户可以轻松创建它们。 只有在/etc/pam.conf文件中允许.rhosts支持时，此操作才有意义。 即使.rhosts文件在/etc/pam.conf中禁用支持也无效，但它们可能已从其他系统引入，并且可能包含对其他系统的攻击者有用的信息',
          'method': '在所有用户home目录下检查是否存在.rhosts文件，存在的话，则不通过',
          'repairing': '删除所有用户home目录下的.rhosts文件，远程登录统一使用安全可靠的SSH登录',
          'score': '1.0'
        },
        {
          'key': 'netrcExistValue',
          'name': '确保没有用户有.netrc文件',
          'desc': '.netrc文件包含用于通过FTP登录远程主机以进行文件传输的数据。.netrc文件存在严重的安全风险，因为它以未加密的形式存储密码。 即使禁用了FTP，用户帐户也可能从其他系统中带来了.netrc文件，这些文件可能会对这些系统造成风险',
          'method': '在所有用户home目录下检查是否存在.netrc文件，存在的话，则不通过',
          'repairing': '删除所有用户目录下的.netrc文件 rm /home/<user>/.netrc',
          'score': '1.0'
        },
        {
          'key': 'forwardExistValue',
          'name': '确保没有用户有.forward文件',
          'desc': '.forward文件指定用于转发用户邮件的电子邮件地址。使用.forward文件会带来安全风险，因为敏感数据可能会无意中转移到组织外部。 .forward文件也存在风险，因为它可用于执行可能执行意外操作的命令',
          'method': '在所有用户home目录下检查是否存在.forward文件，存在的话，则不通过',
          'repairing': '删除所有用户目录下的.forward： rm /home/<user>/.forward',
          'score': '1.0'
        },
        {
          'key': 'noDuplicateNameNum',
          'name': '确保重复用户名不存在',
          'desc': '尽管useradd程序不允许您创建重复的用户名，但管理员可以手动编辑/etc/passwd文件并更改用户名。 如果为用户分配了重复的用户名，它将创建并访问/etc/passwd中具有该用户名的第一个UID的文件',
          'method': '在所有用户home目录下检查是否存在.forward文件，存在的话，则不通过',
          'repairing': '为用户设置唯一的用户名',
          'score': '1.0'
        },
        {
          'key': 'umaskSet',
          'name': '确保默认用户umask为027或更严格',
          'desc': '为umask设置一个非常安全的默认值可以确保用户有意识地选择他们的文件权限',
          'method': '在 /etc/bash.bashrc 和 /etc/profile 中，查看是否存在umask 027 ，如没有，则不通过',
          'repairing': '检查/etc/bash.bashrc和/etc/profile文件中umask值是否设置为027，否则添加或编辑umask参数： umask 027 执行命令： source /etc/profile',
          'score': '1.0'
        }
      ]
    },
    {
      'key': 'ubuntu16LogConfigCheck',
      'name': 'ubuntu 16 日志配置检查',
      'sub': [{
          'key': 'rsylogEnable',
          'name': '确保rsyslog服务已启用',
          'desc': '确保rsyslog服务已启用，记录日志用于审计',
          'method': '通过命令 service  rsyslog status 查看rsyslog服务是否是 running状态，不是的话，则不通过',
          'repairing': '运行以下命令启用rsyslog服务：systemctl enable rsyslog systemctl start rsyslog',
          'score': '1.0'
        },
        {
          'key': 'rsyslogSetup',
          'name': '确保rsyslog日志已配置',
          'desc': '/etc/rsyslog.conf 文件指定日志记录规则以及哪些文件用于记录某类消息。大量重要的安全相关信息通过rsyslog发送（例如成功和失败的su尝试、失败的登录尝试、根登录尝试等）',
          'method': '通过命令“cat  /etc/syslog.conf”查看是否配置以下参数：*.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.*   -/var/log/maillog cron.*    /var/log/cron 没有的话，则不通过',
          'repairing': '根据环境配置/etc/rsyslog.conf文件，将mail、authpriv、cron、emerg、local等日志配置上',
          'score': '1.0'
        },
        {
          'key': 'auditdEnable',
          'name': '确保审核服务已启用',
          'desc': '启动auditd守护进程以记录系统事件',
          'method': '通过命令 service  auditd status 查看rsyslog服务是否是 running状态，不是的话，则不通过',
          'repairing': '安装启用auditd：apt-get install auditd  service  auditd start',
          'score': '1.0'
        },
        {
          'key': 'auditdMaxLogFile',
          'name': '确保审核日志存储大小已配置',
          'desc': '配置审核日志文件大小的最大值。一旦日志达到最大值，它将被轮换并启动一个新的日志文件',
          'method': '通过命令 cat  /etc/audit/auditd.conf  查看是否配置 max_log_file =8 参数，其中数值可以在5-50之间，没有配置，则不通过',
          'repairing': '在/etc/audit/auditd.conf中设置参数max_log_file的值，max_log_file定义单个日志文件最大size，单位MB，设为5-50： max_log_file = 8',
          'score': '1.0'
        },
        {
          'key': 'auditLoginLogout',
          'name': '确保收集登录和注销事件',
          'desc': '监视登录/注销事件可以为系统管理员提供与针对用户登录的暴力攻击相关联的信息',
          'method': '通过命令 cat  /etc/audit/audit.rules 查看配置如下参数：-w /var/log/lastlog -p wa -k logins -w /var/run/faillock/ -p wa -k logins没有的话，则不通过',
          'repairing': '将以下行添加到/etc/audit/audit.rules文件中：-w /var/log/lastlog -p wa -k logins -w /var/run/faillock/ -p wa -k logins执行命令重启auditd服务： service auditd restart',
          'score': '1.0'
        },
        {
          'key': 'auditDiscretionary',
          'name': '确保收集自主访问控制权限修改事件',
          'desc': '监控对文件权限，属性，所有权和组的更改。 本节中的参数跟踪影响文件权限和属性的系统调用的更改。 chmod，fchmod和fchmodat系统调用会影响与文件关联的权限。 chown，fchown，fchownat和lchown系统调用会影响文件的所有者和组属性。 setxattr，lsetxattr，fsetxattr（设置扩展文件属性）和removexattr，lremovexattr，fremovexattr（删除扩展文件属性）控制扩展文件属性。 在所有情况下，仅为非系统用户ID（auid> = 1000）编写审计记录，并忽略守护程序事件（auid = 4294967295）。 所有审计记录都将使用标识符“perm_mod”进行标记。 监视文件属性的更改可以提醒系统管理员注意可能指示入侵者活动或策略违规的活动',
          'method': '通过命令 cat  /etc/audit/audit.rules 查看是否存在如下参数-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod-a always,exit -F arch=b32 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod-a always,exit -F arch=b32 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod-a always,exit -F arch=b64 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295 -k perm_mod-a always,exit -F arch=b32 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295 -k perm_mod没有则不通过',
          'repairing': '将以下行添加到/etc/audit/audit.rules文件中：-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod-a always,exit -F arch=b32 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod-a always,exit -F arch=b32 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod-a always,exit -F arch=b64 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295 -k perm_mod-a always,exit -F arch=b32 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295 -k perm_mod重启：auditd： service auditd restart',
          'score': '1.0'
        },
        {
          'key': 'auditFileAccess',
          'name': '确保收集未成功的未经授权的文件访问尝试',
          'desc': '通过命令 cat  /etc/audit/audit.rules 查看是否存在如下参数-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F40:F41 exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access没有的则不通过',
          'method': '通过命令 cat  /etc/audit/audit.rules 查看是否存在如下参数-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access没有的则不通过',
          'repairing': '将以下行添加etc/audit/audit.rules文件中：-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access重启：auditd： service auditd restart',
          'score': '1.0'
        },
        {
          'key': 'auditMandatoryAccess',
          'name': '确保收集修改系统强制访问控制的事件',
          'desc': '监控SELinux强制访问控制。 下面的参数监视任何写访问（可能附加，删除或修改目录中的文件）或属性更改到/ etc / selinux或目录。更改这些目录中的文件可能表示未经授权的用户正在尝试修改访问控制 并改变安全上下文，导致系统妥协',
          'method': '通过命令 cat  /etc/audit/audit.rules 查看是配置如下参数:-w /etc/selinux/ -p wa -k MAC-policy 没有则不通过',
          'repairing': '在/etc/audit/audit.rules文件中添加以下行： -w /etc/selinux/ -p wa -k MAC-policy 执行命令重启auditd服务： service auditd restart',
          'score': '1.0'
        },
        {
          'key': 'auditNetEnvChange',
          'name': '确保收集修改系统网络环境的事件',
          'desc': '记录对网络环境文件或系统调用的更改。 以下参数监视sethostname（设置系统主机名）或setdomainname（设置系统域名）系统调用，并在系统调用exit上写入审计事件。 其他参数监视/ etc / issue和/etc/issue.net文件（登录前显示的消息），/ etc / hosts（包含主机名和相关IP地址的文件），/ etc / sysconfig / network文件和/ etc / sysconfig / network-scripts /目录（包含网络接口脚本和配置）',
          'method': '通过命令 cat /etc/audit/audit.rules 查看是否配置如下参数:-a always,exit -F arch=b64 -S sethostname -S setdomainname -k system-locale-w /etc/issue -p wa -k system-locale-w /etc/issue.net -p wa -k system-locale-w /etc/hosts -p wa -k system-locale-w /etc/sysconfig/network -p wa -k system-locale-w /etc/sysconfig/network-scripts/ -p wa -k system-locale没有则不通过',
          'repairing': '将以下行添加到/etc/audit/audit.rules文件中：-a always,exit -F arch=b64 -S sethostname -S setdomainname -k system-locale-w /etc/issue -p wa -k system-locale-w /etc/issue.net -p wa -k system-locale-w /etc/hosts -p wa -k system-locale-w /etc/sysconfig/network -p wa -k system-locale-w /etc/sysconfig/network-scripts/ -p wa -k system-locale重启auditd:service auditd restart',
          'score': '1.0'
        },
        {
          'key': 'auditTimeChangeList',
          'name': '确保收集修改日期和时间信息的事件 ',
          'desc': '捕获已修改系统日期和/或时间的事件。 设置此部分中的参数以确定adjtimex（调整内核时钟），settimeofday（设置时间，使用时间和时区结构）是否为stime（使用自1970年1月1日以来的秒数）或clock_settime（允许设置多个内部时间） 时钟和计时器）系统调用已执行，并在退出时始终将审计记录写入/var/log/audit.log文件，使用标识符“time-change”标记记录 系统日期和/或时间的意外更改可能是系统上恶意活动的迹象',
          'method': '通过命令 cat  /etc/audit/audit.rules 查看是配置如下参数:-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change-a always,exit -F arch=b32 -S adjtimex -S settimeofday -S stime -k time-change-a always,exit -F arch=b64 -S clock_settime -k time-change-a always,exit -F arch=b32 -S clock_settime -k time-change-w /etc/localtime -p wa -k time-change没有则不通过',
          'repairing': '将以下行添加到etc/audit/audit.rules文件中：-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change-a always,exit -F arch=b32 -S adjtimex -S settimeofday -S stime -k time-change-a always,exit -F arch=b64 -S clock_settime -k time-change-a always,exit -F arch=b32 -S clock_settime -k time-change-w /etc/localtime -p wa -k time-change重启service auditd restart',
          'score': '1.0'
        },
        {
          'key': 'auditUserAndGroup',
          'name': '确保收集修改用户/组信息的事件',
          'desc': '记录影响group,passwd（用户ID），shadow和gshadow（密码）或/etc/security/opasswd（旧密码，基于PAM配置中的remember参数）文件的事件。 本节中的参数将监视文件以查看它们是否已打开以进行写入或是否已更改属性（例如权限），并使用审计日志文件中的标识符“identity”标记它们。对这些文件的意外更改可能表示系统已遭到入侵，并且未经授权的用户试图隐藏其活动或破坏其他帐户',
          'method': '通过命令 cat  /etc/audit/audit.rules 查看是配置如下参数:-w /etc/group -p wa -k identity -w /etc/passwd -p wa -k identity -w /etc/gshadow -p wa -k identity -w /etc/shadow -p wa -k identity -w /etc/security/opasswd -p wa -k identity没有则不通过',
          'repairing': '将以下行添加到/etc/audit/audit.rules 文件中：-w /etc/group -p wa -k identity -w /etc/passwd -p wa -k identity -w /etc/gshadow -p wa -k identity -w /etc/shadow -p wa -k identity -w /etc/security/opasswd -p wa -k identity重启auditd服务： service auditd restart',
          'score': '1.0'
        }
      ]
    },
    {
      'key': 'ubuntu16FileSystemCheck',
      'name': 'ubuntu 16 文件系统检查',
      'sub': [{
          'key': 'passwdFilePerm',
          'name': '确保 /etc/passwd 权限配置',
          'desc': '/etc/passwd文件包含许多系统实用程序使用的用户帐户信息，因此必须可以读取这些实用程序才能运行。确保/etc/passwd文件免受未经授权的写访问是至关重要的。 虽然默认情况下受保护，但文件权限可能会被无意中或通过恶意操作更改',
          'method': '通过命令 stat /etc/passwd 查看文件权限设置的是否为 0644，不是的话则不通过',
          'repairing': '执行以下命令设置 /etc/passwd 的权限：chown root:root /etc/passwdchmod 644 /etc/passwd',
          'score': '1.0'
        },
        {
          'key': 'shadowFilePerm',
          'name': '确保 /etc/shadow 权限配置',
          'desc': '/etc/shadow文件用于存储对这些帐户的安全性至关重要的用户帐户信息，例如散列密码和其他安全信息。如果攻击者可以获得对/etc/shadow文件的读取权限，则 可以轻松地针对哈希密码运行密码破解程序来破解它。 存储在/etc/shadow文件中的其他安全信息（例如过期）对于破坏用户帐户也很有用',
          'method': '通过命令 stat /etc/shadow查看文件权限设置的是否为 0000，不是的话则不通过',
          'repairing': '运行以下命令以设置/etc/shadow的权限：chown root:root /etc/shadowchmod 000 /etc/shadow',
          'score': '1.0'
        },
        {
          'key': 'groupFilePerm',
          'name': '确保 /etc/group 权限配置 ',
          'desc': '/etc/group文件包含系统中定义的所有有效组的列表。 下面的命令允许对其他人进行root和读访问的读/写访问。/etc/group文件需要受到非特权用户的未经授权的更改保护，但需要可读',
          'method': '通过命令 stat /etc/group查看文件权限设置的是否为 0644，不是的话则不通过',
          'repairing': '执行以下命令设置 /etc/group 的权限：chown root:root /etc/group chmod 644 /etc/group',
          'score': '1.0'
        },
        {
          'key': 'gshadowFilePerm',
          'name': '确保 /etc/gshadow 权限配置',
          'desc': '/etc/gshadow文件用于存储对这些帐户的安全性至关重要的组的信息，例如散列密码和其他安全信息。如果攻击者可以获得对/etc/gshadow文件的读取权限，他们可以 轻松运行密码破解程序对抗哈希密码来打破它。 存储在/etc/gshadow文件中的其他安全信息（例如组管理员）也可用于破坏组',
          'method': '通过命令 stat /etc/gshadow查看文件权限设置的是否为 0000，不是的话则不通过',
          'repairing': '执行以下命令设置 /etc/gshadow 的权限：chown root:root /etc/gshadowchmod 000 /etc/gshadow',
          'score': '1.0'
        },
        {
          'key': 'passwd_one_FilePerm',
          'name': '确保 /etc/passwd- 权限配置',
          'desc': '/etc/passwd-文件包含备份用户帐户信息。确保/etc/passwd-文件免受未经授权的访问是至关重要的。 虽然默认情况下受保护，但文件权限可能会被无意中或通过恶意操作更改',
          'method': '通过命令 stat /etc/passwd-查看文件权限设置的是否为 0600，不是的话则不通过',
          'repairing': '执行以下命令设置 /etc/passwd- 的权限：chown root:root /etc/passwd-chmod 600 /etc/passwd-',
          'score': '1.0'
        },
        {
          'key': 'shadow_one_FilePerm',
          'name': '确保 /etc/shadow- 权限配置',
          'desc': '/etc/shadow-文件用于存储对这些帐户的安全性至关重要的用户帐户的备份信息，例如散列密码和其他安全信息。防止/etc/shadow-文件未经授权的访问是至关重要的 。 虽然默认情况下受保护，但文件权限可能会被无意中或通过恶意操作更改',
          'method': '通过命令 stat /etc/shadow-查看文件权限设置的是否为 0600，不是的话则不通过',
          'repairing': '运行以下命令以设置/etc/shadow-的权限：chown root:root /etc/shadow-chmod 600 /etc/shadow-',
          'score': '1.0'
        },
        {
          'key': 'group_one_FilePerm',
          'name': '确保 /etc/group- 权限配置',
          'desc': '/etc/group-文件包含系统中定义的所有有效组的备份列表。确保/etc/group-文件免受未经授权的访问是至关重要的。 虽然默认情况下受保护，但文件权限可能会被无意中或通过恶意操作更改',
          'method': '通过命令 stat /etc/group-查看文件权限设置的是否为 0600，不是的话则不通过',
          'repairing': '执行以下命令设置/etc/group- 的权限：chown root:root /etc/group-;chmod 600 /etc/group-',
          'score': '1.0'
        },
        {
          'key': 'gshadow_one_FilePerm',
          'name': '确保 /etc/gshadow- 权限配置',
          'desc': '/etc/gshadow-文件用于存储对这些帐户的安全性至关重要的组的备份信息，例如散列密码和其他安全信息。确保/etc/gshadow-文件受到保护至关重要 未经授权的访问。 虽然默认情况下受保护，但文件权限可能会被无意中或通过恶意操作更改',
          'method': '通过命令 stat /etc/gshadow-查看文件权限设置的是否为 0600，不是的话则不通过',
          'repairing': '执行以下命令设置 /etc/gshadow- 的权限：chown root:root /etc/gshadow-chmod 600 /etc/gshadow',
          'score': '1.0'
        },
        {
          'key': 'homeDenyFilePermission',
          'name': '确保/etc/hosts.deny 文件权限已配置',
          'desc': '确保/etc/hosts.deny文件不受未经授权的写入访问是至关重要的',
          'method': '通过命令 stat /etc/hosts.deny查看文件权限设置的是否为 0644，不是的话则不通过',
          'repairing': '执行以下命令设置 /etc/hosts.deny 的文件权限：chmod 644  /etc/hosts.deny',
          'score': '1.0'
        },
        {
          'key': 'hostsAllowFilePermission',
          'name': '确保/etc/hosts.allow 文件权限已配置',
          'desc': '确保/etc/hosts.allow文件不受未经授权的写入访问是至关重要的',
          'method': '通过命令 stat /etc/hosts.allow查看文件权限设置的是否为 0644，不是的话则不通过',
          'repairing': '执行以下命令设置 /etc/hosts.allow 的文件权限：chmod 644  /etc/hosts.allow',
          'score': '1.0'
        },
        {
          'key': 'crontabFilePerm',
          'name': '确保/etc/crontab文件权限已正确配置',
          'desc': '此文件包含有关cron运行哪些系统作业的信息。授予非特权用户对此目录的写权限意味着为他们提供了获取未经授权的提升权限的方法。授予对此目录的读权限可以让非特权用户了解如何提升权限或绕过审核控制',
          'method': '通过命令 stat /etc/crontab查看文件权限设置的是否为 0600，不是的话则不通过',
          'repairing': '执行以下命令设置文件权限：chmod 600  /etc/crontab',
          'score': '1.0'
        },
        {
          'key': 'cronhourFilePerm',
          'name': '确保/etc/cron.hourly 文件权限已正确配置',
          'desc': '授予非特权用户对此目录的写权限意味着为他们提供了获取未经授权的提升权限的方法。授予对此目录的读权限可以让非特权用户了解如何提升权限或绕过审核控制',
          'method': '通过命令 stat /etc/cron.hourly查看文件权限设置的是否为 0600，不是的话则不通过',
          'repairing': '执行以下命令设置文件权限：chmod 600  /etc/cron.hourly',
          'score': '1.0'
        },
        {
          'key': 'crondailyFilePerm',
          'name': '确保/etc/cron.daily文件权限已正确配置',
          'desc': '授予非特权用户对此目录的写权限意味着为他们提供了获取未经授权的提升权限的方法。授予对此目录的读权限可以让非特权用户了解如何提升权限或绕过审核控制',
          'method': '通过命令 stat /etc/cron.daily查看文件权限设置的是否为 0600，不是的话则不通过',
          'repairing': '执行以下命令设置文件权限：chmod 600  /etc/cron.daily',
          'score': '1.0'
        },
        {
          'key': 'cronweeklyFilePerm',
          'name': '确保/etc/cron.weekly 文件权限已正确配置',
          'desc': '授予非特权用户对此目录的写权限意味着为他们提供了获取未经授权的提升权限的方法。授予对此目录的读权限可以让非特权用户了解如何提升权限或绕过审核控制',
          'method': '通过命令 stat /etc/weekly查看文件权限设置的是否为 0600，不是的话则不通过',
          'repairing': '执行以下命令设置文件权限：chmod 600  /etc/cron.weekly',
          'score': '1.0'
        },
        {
          'key': 'cronmonthlyFilePerm',
          'name': '确保/etc/cron.monthly文件权限已正确配置',
          'desc': '授予非特权用户对此目录的写权限意味着为他们提供了获取未经授权的提升权限的方法。授予对此目录的读权限可以让非特权用户了解如何提升权限或绕过审核控制',
          'method': '通过命令 stat /etc/cron.monthly查看文件权限设置的是否为 0600，不是的话则不通过',
          'repairing': '执行以下命令设置文件权限：chmod 600  /etc/cron.monthly',
          'score': '1.0'
        },
        {
          'key': 'crondFilePerm',
          'name': '确保/etc/cron.d文件权限已正确配置',
          'desc': '授予非特权用户对此目录的写权限意味着为他们提供了获取未经授权的提升权限的方法。授予对此目录的读权限可以让非特权用户了解如何提升权限或绕过审核控制',
          'method': '通过命令 stat /etc/cron.d查看文件权限设置的是否为 0600，不是的话则不通过',
          'repairing': '执行以下命令设置文件权限：chmod 600  /etc/cron.d',
          'score': '1.0'
        }
      ]
    },
    {
      'key': 'ubuntu16FirewallConfigCheck',
      'name': 'ubuntu 16 防火墙配置检查',
      'sub': [{
        'key': 'iptablesIfInstalled',
        'name': '确保防火墙已安装 ',
        'desc': '开启了防火墙并随系统启动同时关闭所有外部对本机的访问',
        'method': '通过命令sudo ufw status查看防火墙是否安装和开启，没有的话则不通过',
        'repairing': '安装：sudo apt-get install ufw 启动： sudo ufw enable',
        'score': '1.0'
      }]
    },
    {
      'key': 'ubuntu16ServiceCheck',
      'name': 'ubuntu 16 服务配置检查',
      'sub': [{
          'key': 'timeSyncInstalled',
          'name': '确保正在使用时间同步 ',
          'desc': '系统时间应在环境中的所有系统之间同步。 这通常通过建立权威时间服务器或服务器集并使所有系统将它们的时钟与它们同步来完成。 时间同步对于支持时间敏感的安全机制（如Kerberos）非常重要，并且还可确保日志文件在整个企业中具有一致的时间记录，这有助于取证调查',
          'method': '通过命令 service chrony  status查看是否安装和启动chrony',
          'repairing': '安装：sudo apt-get install chrony 启动： service chrony start',
          'score': '1.0'
        },
        {
          'key': 'x_eleven_windowIfNotInstalled',
          'name': '确保X Window系统未安装',
          'desc': 'X Window系统提供了一个图形用户界面（GUI），用户可以在其中拥有多个窗口来运行程序和各种附加功能。 X Windows系统通常用于用户登录的工作站，除非您的组织特别需要通过X Windows进行图形登录访问，否则将其删除以减少潜在的攻击面',
          'method': '通过命令 dpkg -l xorg-x11* 查看x windows是否安装，有的话则不通过',
          'repairing': '运行以下命令以删除X Windows系统软件包：apt-get remove xorg-x11*',
          'score': '1.0'
        },
        {
          'key': 'selinuxStateIfEnforcing',
          'name': '确保SELinux安装',
          'desc': 'SELinux提供强制访问控制。如果没有安装强制访问控制系统，则只有默认的自由访问控制系统可用',
          'method': '通过命令 sestatus|grep -c enforcing 查看selinux是否安装运行，没有的话则不通过',
          'repairing': '执行以下命令安装libselinux：apt-get install selinux-utils',
          'score': '1.0'
        }
      ]
    },
    {
      'key': 'ubuntu16SecureBootCheck',
      'name': 'ubuntu 16 安全启动检查',
      'sub': [{
        'key': 'grubcfgPerm',
        'name': '确保bootloader配置文件权限已配置',
        'desc': '将/boot/grub/grub.cfg权限设置只有root用户读写权限，可防止非root用户看到或更改启动参数。非root用户读取引导参数可以在引导时识别安全性中的弱点，并进行利用',
        'method': '通过命令 stat /boot/grub/grub.cfg查看文件权限设置的是否为 0600，不是的话则不通过',
        'repairing': '执行以下命令设置grub配置文件的权限：chown root:root /boot/grub/grub.cfgchmod 600  /boot/grub/grub.cfg',
        'score': '1.0'
      }]
    }
  ]
}
export const rightJson = {
  'title': 'Ubuntu 16 基线检查',
  'name': 'Ubuntu',
  'version': '16',
  'catalog': 'system',
  'type': 'result',
  'basicInfo': {
    'scanTime': '2020-09-15 18:27:54',
    'hostname': 'vulhub-virtual-machine',
    'macaddr': 'd2:dd:a0:e4:bf:75;00:0c:29:81:a3:c4',
    'ipList': '192.168.60.211',
    'kernelVersion': '4.2.0-16-generic',
    'osVersion': 'Ubuntu 16.04.6 LTS \\n \\l'
  },
  'original': {
    'ubuntu16PasswordPolicyCheck': {
      'passMaxDaysSetup': '99999',
      'passMinDaysSetup': '0',
      'passWarnAgeSetup': '7',
      'passMinlenSet': ''
    },
    'ubuntu16SshConfigCheck': {
      'sshMaxAuthTriesSetup': '',
      'sshdDisableEmptyPasswd': 'True',
      'sshdClinetAliveIntervalSetup': '',
      'sshdDisableRootLogin': 'False',
      'sshEnableLogLevel': 'True',
      'sshdDisableX_eleven': 'False',
      'sshSetGraceTime': '120',
      'sshdDisableHostbasedAuthentication': 'True',
      'sshdEnableProtocol_two': 'True',
      'sshdEnableIgnoreRhosts': 'True',
      'sshdDisablePermitUserEnvironment': 'True'
    },
    'ubuntu16UserConfigCheck': {
      'uid_zero_OnlyRoot': 'True',
      'systemAccountNologinSetup': '16',
      'selfHomeExist': 'False',
      'homePermissionRestricValue': 'False',
      'netrcExistValue': 'True',
      'rhostsExistValue': 'True',
      'forwardExistValue': 'True',
      'noDuplicateNameNum': '0',
      'umask': '0022'
    },
    'ubuntu16LogConfigCheck': {
      'rsylogEnable': 'True',
      'rsyslogSetup': 'False'
    },
    'ubuntu16FileSystemCheck': {
      'passwdFilePerm': '0644',
      'shadowFilePerm': '0000',
      'groupFilePerm': '0644',
      'gshadowFilePerm': '0640',
      'passwd_one_FilePerm': '0600',
      'shadow_one_FilePerm': '0600',
      'group_one_FilePerm': '0600',
      'gshadow_one_FilePerm': '0600',
      'homeDenyFilePermission': '0644',
      'hostsAllowFilePermission': '0644',
      'crontabFilePerm': '0644',
      'cronhourFilePerm': '0755',
      'crondailyFilePerm': '0755',
      'cronweeklyFilePerm': '0755',
      'cronmonthlyFilePerm': '0755',
      'crondFilePerm': '0755'
    },
    'ubuntu16FirewallConfigCheck': {
      'iptablesIfInstalled': 'True'
    },
    'ubuntu16ServiceCheck': {
      'timeSyncInstalled': 'True',
      'x_eleven_windowIfNotInstalled': 'True',
      'selinuxStateIfEnforcing': 'False'
    },
    'ubuntu16SecureBootCheck': {
      'grubcfgPerm': '0600'
    }
  },
  'checked': {
    'ubuntu16PasswordPolicyCheck': {
      'passMaxDaysSetup': 'False',
      'passMinDaysSetup': 'False',
      'passWarnAgeSetup': 'True',
      'passMinlenSet': 'False'
    },
    'ubuntu16SshConfigCheck': {
      'sshMaxAuthTriesSetup': 'False',
      'sshdDisableEmptyPasswd': 'True',
      'sshdClinetAliveIntervalSetup': 'False',
      'sshdDisableRootLogin': 'False',
      'sshEnableLogLevel': 'True',
      'sshdDisableX_eleven': 'False',
      'sshSetGraceTime': 'False',
      'sshdDisableHostbasedAuthentication': 'True',
      'sshdEnableProtocol_two': 'True',
      'sshdEnableIgnoreRhosts': 'True',
      'sshdDisablePermitUserEnvironment': 'True'
    },
    'ubuntu16UserConfigCheck': {
      'uid_zero_OnlyRoot': 'True',
      'systemAccountNologinSetup': 'False',
      'selfHomeExist': 'False',
      'homePermissionRestricValue': 'False',
      'netrcExistValue': 'True',
      'rhostsExistValue': 'True',
      'forwardExistValue': 'True',
      'noDuplicateNameNum': 'True',
      'umask': 'False'
    },
    'ubuntu16LogConfigCheck': {
      'rsylogEnable': 'True',
      'rsyslogSetup': 'False'
    },
    'ubuntu16FileSystemCheck': {
      'passwdFilePerm': 'True',
      'shadowFilePerm': 'False',
      'groupFilePerm': 'True',
      'gshadowFilePerm': 'True',
      'passwd_one_FilePerm': 'False',
      'shadow_one_FilePerm': 'False',
      'group_one_FilePerm': 'False',
      'gshadow_one_FilePerm': 'False',
      'homeDenyFilePermission': 'True',
      'hostsAllowFilePermission': 'True',
      'crontabFilePerm': 'False',
      'cronhourFilePerm': 'False',
      'crondailyFilePerm': 'False',
      'cronweeklyFilePerm': 'False',
      'cronmonthlyFilePerm': 'False',
      'crondFilePerm': 'False'
    },
    'ubuntu16FirewallConfigCheck': {
      'iptablesIfInstalled': 'True'
    },
    'ubuntu16ServiceCheck': {
      'timeSyncInstalled': 'True',
      'x_eleven_windowIfNotInstalled': 'True',
      'selinuxStateIfEnforcing': 'False'
    },
    'ubuntu16SecureBootCheck': {
      'grubcfgPerm': 'True'
    }
  }
}